我正在使用rails 3,这就是我在视图中设置link_to的方式
<%= link_to ('add',
:url => {:controller => 'favourite_companies', :action =>'create',
:company_id=>@company.id,
:company_name=>@company.company_name, :remote => true}) %>
当我点击它时,页面刷新并且没有任何反应。
我添加了&lt;%= csrf_meta_tag%&gt;和所有的javascript文件。
在控制器中,该功能如下所示:
def create
@favorite_list =
FavouriteCompany.new(:user_id=>curr_user.id,:company_id=>params[:company_id])
@favorite_list.save
render :partial => "create"
端
知道可能出错的是什么?谢谢。
答案 0 :(得分:4)
您是否查看了通过浏览器开发工具(即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 %>
答案 1 :(得分:0)
有趣的是,我从未将link_to
用于remote
选项。
无论如何,它应该像所有ajax调用一样工作。
所以我认为你应该:
从您的控制器中删除render :partial => "create"
创建视图create.js.erb
将您的代码放入其中,如下所示:
$('#your_container').html("<%= escape_javascript(render(:partial => 'create')) %>");