我使用的是Rails3,这就是我在视图中设置link_to的方式
<%= link_to ('add',
:url => {:controller => 'favourite_companies', :action =>'create',
:company_id=>@company.id,
:company_name=>@company.company_name, :remote => true}) %>
当我单击它时,页面会刷新,不会有任何反应。
我已经添加了<%=、csrf_meta_tag、%>和所有的javascript文件。
在控制器中,该函数如下所示:
def create
@favorite_list =
FavouriteCompany.new(:user_id=>curr_user.id,:company_id=>params[:company_id])
@favorite_list.save
render :partial => "create"
结束
你知道可能出了什么问题吗?谢谢。
发布于 2011-07-12 22:54:17
你有没有看过通过浏览器开发工具(如firebug等)输出的HTML?
我相信你把:remote => true
放错了哈希表。
尝试:
<%= link_to ('add',
{:url => {:controller => 'favourite_companies', :action =>'create',
:company_id=>@company.id,
:company_name=>@company.company_name}}, :remote => true) %>
您不使用Rails路由并通过标准Rails进程生成链接有什么原因吗?
<%= link_to 'add', favourite_companies_path(@company), :remote => true %>
发布于 2011-07-12 22:53:09
有趣的是,我从来没有在remote
选项中使用过link_to
。
无论如何,它应该像所有ajax调用一样工作。
所以我认为你应该:
从你的控制器中移除render :partial => "create"
create.js.erb
$('#your_container').html("<%= escape_javascript(render(:partial => 'create')) %>");
https://stackoverflow.com/questions/6672121
复制